# 继承
class parent:  # 定义父类a
    parentAttr = 100

    def __init__(self):
        print("调用父类构造函数")

    def parentMethod(self):
        print("调用父类方法")

    def setAttr(self, attr):
        parent.parentAttr = attr

    def getAttr(self):
        print("父类属性:", parent.parentAttr)


class child(parent):  # 定义子类
    def __init__(self):
        print("调用子类构造方法")

    def childMethod(self):
        print("调用子类方法")


c = child()  # 实例化子类
c.childMethod()  # 调用子类方法
c.parentMethod()  # 调用父类方法 - 不会触发父类的init方法
c.setAttr(200)  # 调用父类方法 - 设置属性值
c.getAttr()  # 调用父类方法 - 获取属性值

# 如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true
print(isinstance(child, parent))  # False
print(isinstance(child(), parent))  # 执行子类初始化方法,True
print(isinstance(c, parent))  # True
